From e25e1c54a44264de628fb3919fb47afd44e21ba5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Thu, 29 Jun 2017 15:28:47 +0200 Subject: [PATCH] levelbar: Don't underallocate block widgets --- gtk/gtklevelbar.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gtk/gtklevelbar.c b/gtk/gtklevelbar.c index 077ea00ec5..969fe47e4b 100644 --- a/gtk/gtklevelbar.c +++ b/gtk/gtklevelbar.c @@ -430,6 +430,7 @@ gtk_level_bar_allocate_trough_continuous (GtkLevelBar *self, GtkAllocation block_area, clip; gdouble fill_percentage; gboolean inverted; + int block_min; inverted = gtk_level_bar_get_real_inverted (self); @@ -445,9 +446,13 @@ gtk_level_bar_allocate_trough_continuous (GtkLevelBar *self, fill_percentage = (self->priv->cur_value - self->priv->min_value) / (self->priv->max_value - self->priv->min_value); + gtk_widget_measure (self->priv->block_widget[inverted ? 1 : 0], self->priv->orientation, -1, + &block_min, NULL, NULL, NULL); + if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL) { block_area.width = (gint) floor (block_area.width * fill_percentage); + block_area.width = MAX (block_area.width, block_min); if (inverted) block_area.x += allocation->width - block_area.width; @@ -455,6 +460,7 @@ gtk_level_bar_allocate_trough_continuous (GtkLevelBar *self, else { block_area.height = (gint) floor (block_area.height * fill_percentage); + block_area.height = MAX (block_area.height, block_min); if (inverted) block_area.y += allocation->height - block_area.height; -- 2.30.2